package br.unicamp.ic.sgct.client.apresentacao.views;

import br.unicamp.ic.sgct.client.apresentacao.ucs.BaseConferenciaScreen;
import br.unicamp.ic.sgct.client.apresentacao.widgets.LabelCampoForm;
import br.unicamp.ic.sgct.client.dominio.to.ConferenciaTO;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

/**
 * Responsável por gerar a UI (interface de usuário) para mostrar os dados da
 * Conferência.
 *
 * @author arthur
 */
public class ViewDadosConferencia extends Composite {

    private VerticalPanel panelDadosConferencia = new VerticalPanel();
    private HorizontalPanel panelADD = new HorizontalPanel();
    private Grid gridDadosConferencia = new Grid(5, 2);
    private HTML strTabTitle = null;
    private int index = 0;




    public ViewDadosConferencia() {
        this("Dados Confer\u00eancia", 1);
    }

    public ViewDadosConferencia(String title, int index) {
        
        this.panelDadosConferencia.setVisible(false);
        this.panelDadosConferencia.add(gridDadosConferencia);
        this.panelDadosConferencia.add(panelADD);
        this.strTabTitle = new HTML(title);
        this.index = index;
        initWidget(panelDadosConferencia);
    }

    /**
     * Adi
     * @param w
     * @return
     */
    public ViewDadosConferencia add(Widget w) {
        panelADD.add(w);
        return this;
    }

    public ViewDadosConferencia clear() {
        panelADD.clear();
        return this;
    }


    public void montar(ConferenciaTO conferencia) {
        BaseConferenciaScreen.showLoading(false);
        panelDadosConferencia.setVisible(true);
        montarGrid(conferencia);
    }

    /**
     * montarGridInfoAdicional
     */
    private void montarGrid(ConferenciaTO conferencia) {
        gridDadosConferencia.clear();
        if (conferencia != null) {
            gridDadosConferencia.setBorderWidth(1);
            gridDadosConferencia.setCellSpacing(1);
            gridDadosConferencia.setCellPadding(2);
            gridDadosConferencia.setTitle("Detalhes confer\u00eancia selecionada...");
            gridDadosConferencia.setWidget(0, 0, new LabelCampoForm("Descri\u00e7\u00e3o"));
            gridDadosConferencia.setWidget(1, 0, new LabelCampoForm("In\u00edcio chamada trabalhos"));
            gridDadosConferencia.setWidget(2, 0, new LabelCampoForm("T\u00e9rmino chamada trabalhos"));
            gridDadosConferencia.setWidget(3, 0, new LabelCampoForm("Endereco"));
            gridDadosConferencia.setWidget(4, 0, new LabelCampoForm("Centro Convencao"));
            //gridDadosConferencia.setWidget(5, 0, new LabelCampoForm("Areas"));
            //gridDadosConferencia.setWidget(6, 0, new LabelCampoForm("Usuarios"));
            //gridDadosConferencia.setWidget(7, 0, new LabelCampoForm("Trabalhos"));
            gridDadosConferencia.setWidget(0, 1, new LabelCampoForm(conferencia.getDescricao() != null ? conferencia.getDescricao().trim() : ""));
            gridDadosConferencia.setWidget(1, 1, new LabelCampoForm(ViewUtil._dtTimeFormat.format(conferencia.getInicioChamadaTrabalhos())));
            gridDadosConferencia.setWidget(2, 1, new LabelCampoForm(ViewUtil._dtTimeFormat.format(conferencia.getTerminoChamadaTrabalhos())));
            gridDadosConferencia.setWidget(3, 1, new LabelCampoForm(conferencia.getEndereco() != null ? conferencia.getEndereco().trim() : ""));
            gridDadosConferencia.setWidget(4, 1, ViewUtil.montarGridCentroConvencao(conferencia.getCentroConvencao()));
            //gridDadosConferencia.setWidget(5, 1, montarGridAreas(to.getAreas()));
            //gridDadosConferencia.setWidget(6, 1, montarGridUsuario(to.getUsuarios()));
            //gridDadosConferencia.setWidget(7, 1, montarGridTrabalhos(to.getTrabalhos()));
        }
    }

    /**
     * @return the strTabTitle
     */
    public HTML getStrTabTitle() {
        return strTabTitle;
    }
}
